home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / shell-tools / sort1.49e / sort.doc < prev    next >
Encoding:
Text File  |  1996-03-04  |  9.3 KB  |  256 lines

  1. sort.doc    sort Version 1.49        by Rüdiger Werner
  2.  
  3. The program and files in this distribution are freely distributable.
  4. No commercial usage is permitted without written permission from the
  5. author. Everything in this distribution must be kept together, in original
  6. unmodified form.
  7.  
  8.                       *************************
  9.  
  10. ***********************************************************************
  11. * Notice that the author can't be made responsible for the destroying *
  12. * or lost of data through use of this program. You use it on your own *
  13. * risc. Please read carefully the Doc-file before using.              *
  14. ***********************************************************************
  15.  
  16.  
  17. This copy is not registered.
  18. For registration send a letter with 5 US$ or its EQUIVALENT in DM to the
  19. below mentioned address.  If you give an e-mail address, you will get the
  20. registered version via this medium.  Otherwise include an addressed and
  21. franked envelope (2 DM within Germany) or 3 more US$ for shipping.
  22. Send cash only, for checks add 6 US$ for the charges of the bank.
  23.  
  24.                       *************************
  25.  
  26. Please contact me if you have any comments or suggestions:
  27.  
  28.  E-Mail:  rw2@irz.inf.tu-dresden.de
  29.       wernerr@iee1.et.tu-dresden.de
  30.  
  31.  URL:      http://home.pages.de/~wernerr
  32.       http://www.inf.tu-dresden.de/~rw2
  33.       http://eeetw0.et.tu-dresden.de:8080/~wernerr
  34.  
  35.  Snail
  36.  Mail:      Rüdiger Werner
  37.       Stresemannplatz 2
  38.       01309 Dresden
  39.       GERMANY
  40.  
  41.  
  42. CHANGES TO LAST VERSIONS
  43.  
  44. (1.48)
  45. -q option added
  46. -Q option added
  47.  
  48. (1.47)
  49. removed a bug which could occur, if binary characters in the file
  50. no maximun length of a line for AMIGA version anymore
  51.  
  52. (1.46)
  53. loading speed increased
  54. sorting time reduced downto 5 per cent or less
  55. no (recognizable) time is needed anymore for freeing the memory
  56. -c option changed
  57. -C option added
  58. -i option added
  59. -S option added
  60. -v option added
  61.  
  62. Description
  63. -----------
  64.  
  65. The program was written for use in Shell only.
  66. It is started either by simply typing it's name (of course it should be
  67. in the current directory or in the path) or by giving additionally switches
  68. and/or the name of the file what should be sorted.
  69.  
  70.  sort [switches] infile [infile 2 ... ] [outfile]
  71.  
  72. By typing 'sort ?' appears a short help.
  73. The specified file is opened and red into the memory. There it will be
  74. sorted and, if any switches were set, manipulated in the required way.
  75.  
  76. Explanation of the switches (alphabeticially order):
  77.  
  78. NOTE: In the unregistered version only the -a, -e and -g switches are working.
  79. ------------------------------------------------------------------------------
  80.  
  81. -a    sorting the file in ascending order (it is optional, because default)
  82.  
  83. -c[z,l]    with this option the number 'z' of column can be specified, by which
  84.     the file is to be sorted. 'l' specifies, how many chars are used for
  85.     sorting.
  86.     This is useful e.g. to sort the RECENT files from Aminet by type.
  87.     (-c20,10)
  88.     If double lines are erased, the comparision starts at the FIRST char
  89.     of the lines, means the whole line is used for comparision.
  90.     If 'l' is not given, it will be asked for, if 'l' given as '0' it
  91.     will be set automatical to maximum line length
  92.  
  93. -C[z,l]    see above
  94.     The difference is, that the comparision for erasing double
  95.     lines starts at the column, which is specified for sorting.
  96.     comparision is made till end of the line, the number of chars
  97.     for sorting doesn't have any influence.
  98.  
  99. -d    sorting the file in descending order
  100.  
  101. -e    all empty lines will be erased.
  102.  
  103. -E    all empty lines and all identical lines in the file will be erased
  104.     after sorting (of course ONE of these lines is kept in the file).
  105.  
  106. -f[y]    using this option the first line of the work range can be specified
  107.     If this option is given, ALL actions are done ONLY within this range.
  108.     To give also the last line is not compelling.
  109.     If y is bigger than the number of lines of the internal file
  110.     (all in-read files together) an error-message appears and the
  111.     program is cancelled.
  112.  
  113. -g    actually the capitals and small letters are distinguished.
  114.     by setting this switch, they won't be distinguished.
  115.  
  116. -i[str]    the given string is ignored for sorting, if it appears
  117.     on the beginning of the sorting column. It's NOT removed!
  118.     if spaces are in the string, it's advicable to give the -i
  119.     option only in the command line and answer the request.
  120.     For deleting the full line is used for comparision.
  121.  
  122. -j[x]    joins x files and sorts them; the resulting file will be
  123.     written to <outfile>.
  124.  
  125. -J[x]    joins x files without sorting; the resulting file will be
  126.     written to <outfile>.
  127.  
  128. -l[y]    using this option the first line of the work range can be specified
  129.     If this option is given, ALL actions are done ONLY within this range.
  130.     To give also the first line is not compelling.
  131.     if y is bigger than the number of lines of the internal file
  132.     (all in-read files together) the last line of the file is
  133.     automatically taken as last line of the range.
  134.  
  135.     if x or/and y is not given it will be asked for
  136.  
  137. -n    the file is not sorted, only empty lines are erased.
  138.  
  139. -N    the file is not sorted, only empty lines and identical lines which
  140.     are side by side are erased (of course ONE line is kept in the file).
  141.     Note that it might more useful if the file is already sorted.
  142.  
  143. -o    the specified file for reading will be overwritten by the sorted
  144.     file.
  145.     BE CAREFUL!!! IF ONCE OVERWRITTEN THE ORIGINAL FILE CAN'T BE RESTORED!!!
  146.  
  147. -p[str]    all lines, which do not match the search pattern 'str' will be removed.
  148.     note: if characters like " are given it is advisable to give
  149.     this switch as the very last of the command line. The reason is that
  150.     the following arguments are not recognized after a " by the programm.
  151.  
  152. -P[str]    all lines, which match the search pattern str will be removed
  153.     note: see -p
  154.  
  155. -q[str]    divide a file.
  156.     All lines which do not match the search pattern will be written to
  157.     an extra file (<outfile>.ohne) and all lines, which don't to
  158.     anotherone.
  159.     note: see -p
  160.  
  161. -Q[str]    divide a file.
  162.     All lines which do match the search pattern will be written to a
  163.     file (<outfile>.mit) and all lines, which don't to anotherone.
  164.     note: see -p
  165.  
  166.     NOTE:
  167.     The use of -p|P and -q|Q is possible at the same time. Then the
  168.     lines will be picked out / throwed out according to the string
  169.     given with the -p|P option, and AFTER sorting, the file will be
  170.     divided into two according to the string given with the -q|Q switch.
  171.  
  172.  
  173. -r    the file which was red will only be written in reverse order of lines
  174.     without any other actions
  175.  
  176. -s[c]    with this option the character c will be removed from the file/range.
  177.     note: if characters like " need to be removed it is advisable to give
  178.     this switch as the very last of the command line. The reason is that
  179.     the following arguments are not recognized after a " by the programm.
  180.  
  181. -S[cd]    with this option the char c will be replaced by char d in the
  182.     file/range.
  183.     note: see -s[c]
  184.  
  185. -v    this option supresses all messages, including the warning, that the
  186.     outfile already exists.
  187.     Only error messages will appear.
  188.  
  189. -x    the sorting function will be disabled
  190.  
  191.  
  192. some examples:
  193.  
  194. sort textfile1
  195. asks for the outfilename and loads textfile1. After sorting it will be
  196. written to outfile
  197.  
  198. sort textfile1 text.out -g
  199. loads textfile1 without distinguishing capitals and small letters and
  200. writes the sorted file to text.out 
  201.  
  202. sort textfile1 textfile2 -j3 textfile3 ram:text.out -E
  203. loads textfile1 textfile2 and textfile3 sorts, removes all empty lines
  204. and all identical lines (except of one of them) and writes the
  205. list to RAM:text.out
  206.  
  207. sort RECENT RECENT.sort -E -c20,10 -g -f6
  208. is the common command line to sort the RECENT files from Aminet
  209. sorting starts at line 6, means the header is not touched
  210. it is sorted after the types of the files, additionally the entries
  211. are sorted after the first column
  212. empty lines and identical lines are deleted
  213. (the whole line is used for comparision)
  214.  
  215. sort RECENT ram:file1 -g -E -c20,10 -pdev/ -q/e
  216. sorts the Aminet RECENT file by the type of program, erases all lines
  217. which don't contain 'dev/' and divides the remaining file into one, which
  218. lines contain the string '/e' (written to ram:file1) and one, which lines
  219. doesn't contain the string '/e' (written to ram:file1.ohne)
  220.  
  221. sort file1 -j3 file2 file3 ram:big_file -px -qy -E -g
  222. loads file1, file2 and file3, picks out all lines which contain the
  223. string 'x' (means delete all lines which doesn't contain it), sorts the
  224. file without distinguishing capitals and small letters, deletes all double
  225. lines.  After that all lines which don't contain the string 'y' will be
  226. written to ram:big_file.ohne, the rest to ram:big_file.
  227.  
  228.  
  229.                 ******
  230.  
  231. The switches can be set at any place after the program name.
  232. If the parameter to the switch is not given, it will be asked for.
  233. The program detects contradictions between given switches to avoid possible
  234. mistakes from the user
  235.  
  236. Notice that the outfilename has to be the last of all filenames.
  237. If no outfilename is given, the first infilename plus a new ending is used
  238. for a suggestion for the outfilename.
  239.  
  240. The sort-order bases on the strcmp/stricmp function.
  241.  
  242. The maximum length of a line in a file is 1024 byte.
  243. All bytes that a line is longer than this are cutted. A message appears in
  244. this case. If you need to sort longer lines, just send me a mail.
  245.  
  246. The size of the file to be sorted depends only on the size of the available
  247. memory (and on your patience). The used time is shown after sorting, just
  248. for your statistics ...
  249. The sort_engl file is the same as the sort file, just all messages appear
  250. in English.
  251.  
  252. I'd be grateful for any comments, suggestions and bug reports.
  253.  
  254.  
  255. Rüdiger Werner
  256.